TM Reflection
TM Reflection
这是第二次图灵机大作业完成后的反思与总结,将分为如下几部分:
- 架构的反思
- debug的过程
¶架构的反思
1.TuringMachine的构造函数过于复杂,夹杂了许多功能,可创建Util工具类,使代码低耦合,数据与职责一致
2.Q, State,TransitionFuction之间的映射关系要理清,是个不错的架构,值得学习
3.对于Executor,它拥有的是Tapes,因此他的快照等功能应该是调用Tape的方法来“拼凑”实现整体,而不应该在Executor中调用到Tracks层面
¶debug的过程
1.第一次运行,什么错误信息都没有,什么输出都没有,合理推测问题在Execute方法,处理了一系列格式化问题,都怪猪脚需求写的不清楚(拍桌子)
发现需要知道空格符号,使我下定了改为自顶而下架构的决心,Executor没有理由需要知道B是什么符号,一次重构,费了点时间,但也算有收获
2.肉眼对比输出结果的我像个憨批,下次丕定(
3.第二次运行,发现多报了错误流信息,居然把String直接扔到Character集合中了,我当时怕是写傻了
4.顺手把错误检查全过了,Resolver判断是否冲突需要对上文所说两重映射完全理解
5.最后一出错点,挂掉我4个用例,居然是很浅显的错误,移动磁头(我一直很相信你的啊喂……),再一次警告自己不要乱复制
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 慎治の万事屋!